package com.gxa.p2p.mapper;

import com.gxa.p2p.pojo.SysUser;

import java.util.List;
import java.util.Map;

public interface SysUserMapper {
  /**
   * 添加系统用户
   *
   * @param record 封装的系统用户对象
   * @return int 影响行数
   */
  int insert(SysUser record);

  int insertSelective(SysUser record);

  /**
   * 主键删除
   *
   * @param id 要删除用户的id
   * @return int 影响行数
   */
  int deleteByPrimaryKey(Integer id);

  /**
   * 批量删除
   *
   * @param idList 要删除的用户的id列表
   * @return int 影响行数
   */
  int deleteByPrimaryKeyList(List<Integer> idList);

  /**
   * 选择性修改某些字段
   *
   * @param record 目标修改信息
   * @return 影响行数
   */
  int updateByPrimaryKeySelective(SysUser record);

  int updateByPrimaryKey(SysUser record);

  /**
   * 分页查询
   *
   * @param paramMap 参数映射表:包含page,limit,和可能有的查询条件
   * @return List<SysUser> 查询结果列表
   */
  List<SysUser> selectByPage(Map<String, Object> paramMap);

  /**
   * 通过工号和密码查询,用于登录操作
   *
   * @param jobNumber 工号
   * @param password 密码
   * @return int 影响行数
   */
  SysUser selectByJobNumberAndPassword(String jobNumber, String password);

  /**
   * 按条件查询全部
   *
   * @return List<SysUser> 查询结果列表
   */
  List<SysUser> selectAll(Map<String, Object> paramMap);

  /**
   * 修改系统用户类型
   *
   * @param sysUser 目标用户类型的对象
   * @return 影响行数
   */
  int updateRole(SysUser sysUser);

  /**
   * 计数
   *
   * @param paramMap 封装了计数条件的map
   * @return count 总数
   */
  int count(Map<String, Object> paramMap);
}
